home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / tbl_properties_operations.php < prev    next >
PHP Script  |  2005-01-18  |  24KB  |  564 lines

  1. <?php
  2. /* $Id: tbl_properties_operations.php,v 2.27 2005/01/18 17:24:54 rabus Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5.  
  6. /**
  7.  * Runs common work
  8.  */
  9. require('./tbl_properties_common.php');
  10. //$err_url   = 'tbl_properties_operations.php' . $err_url;
  11. $url_query .= '&goto=tbl_properties_operations.php&back=tbl_properties_operations.php';
  12.  
  13.  
  14. /**
  15.  * Gets relation settings
  16.  */
  17. require_once('./libraries/relation.lib.php');
  18. $cfgRelation = PMA_getRelationsParam();
  19.  
  20. /**
  21.  * Gets available MySQL charsets and storage engines
  22.  */
  23. require_once('./libraries/mysql_charsets.lib.php');
  24. require_once('./libraries/storage_engines.lib.php');
  25.  
  26. // reselect current db (needed in some cases probably due to
  27. // the calling of relation.lib.php)
  28. PMA_DBI_select_db($db);
  29.  
  30. /**
  31.  * Updates table comment, type and options if required
  32.  */
  33. if (isset($submitcomment)) {
  34.     if (empty($prev_comment) || urldecode($prev_comment) != $comment) {
  35.         $sql_query = 'ALTER TABLE ' . PMA_backquote($table) . ' COMMENT = \'' . PMA_sqlAddslashes($comment) . '\'';
  36.         $result    = PMA_DBI_query($sql_query);
  37.         $message   = $strSuccess;
  38.     }
  39. }
  40. if (isset($submittype)) {
  41.     $sql_query     = 'ALTER TABLE ' . PMA_backquote($table) . ' TYPE = ' . $tbl_type;
  42.     $result        = PMA_DBI_query($sql_query);
  43.     $message       = $strSuccess;
  44. }
  45. if (isset($submitcollation)) {
  46.     $sql_query     = 'ALTER TABLE ' . PMA_backquote($table) . ' DEFAULT' . PMA_generateCharsetQueryPart($tbl_collation);
  47.     $result        = PMA_DBI_query($sql_query);
  48.     $message       = $strSuccess;
  49.     unset($tbl_collation);
  50. }
  51. if (isset($submitoptions)) {
  52.     $sql_query     = 'ALTER TABLE ' . PMA_backquote($table)
  53.                    . (isset($pack_keys) ? ' pack_keys=1': ' pack_keys=0')
  54.                    . (isset($checksum) ? ' checksum=1': ' checksum=0')
  55.                    . (isset($delay_key_write) ? ' delay_key_write=1': ' delay_key_write=0')
  56.                    . (!empty($auto_increment) ? ' auto_increment=' . PMA_sqlAddslashes($auto_increment) : '');
  57.     $result        = PMA_DBI_query($sql_query);
  58.     $message       = $strSuccess;
  59. }
  60.  
  61. /**
  62.  * Reordering the table has been requested by the user
  63.  */
  64. if (isset($submitorderby) && !empty($order_field)) {
  65.     $sql_query   = 'ALTER TABLE ' . PMA_backquote($table)
  66.                  . ' ORDER BY ' . PMA_backquote(urldecode($order_field));
  67.     if (isset($order_order) && $order_order == 'desc') {
  68.         $sql_query .= ' DESC';
  69.     }
  70.     $result      = PMA_DBI_query($sql_query);
  71.     $message     = $result ? $strSuccess : $strFailed;
  72. } // end if
  73.  
  74. /**
  75.  * Gets tables informations
  76.  */
  77. require('./tbl_properties_table_info.php');
  78.  
  79. /**
  80.  * Displays top menu links
  81.  */
  82. require('./tbl_properties_links.php');
  83.  
  84. /**
  85.  * Get columns names
  86.  */
  87. $local_query = 'SHOW COLUMNS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($db);
  88. $result      = PMA_DBI_query($local_query);
  89. for ($i = 0; $row = PMA_DBI_fetch_assoc($result); $i++) {
  90.         $columns[$i] = $row['Field'];
  91. }
  92. PMA_DBI_free_result($result);
  93. unset($result);
  94. ?>
  95.  
  96. <table border="0" align="left" cellpadding="3" cellspacing="0">
  97. <?php
  98.  
  99. /**
  100.  * Displays the page
  101.  */
  102.  
  103. if (PMA_MYSQL_INT_VERSION >= 32334) {
  104.     ?>
  105.     <!-- Order the table -->
  106.  
  107.     <form method="post" action="tbl_properties_operations.php">
  108.         <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  109.         <tr>
  110.             <th class="tblHeaders" colspan="2" align="left"><?php echo $strAlterOrderBy; ?>: </th></tr>
  111.         <tr>
  112.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  113.                 <select name="order_field" style="vertical-align: middle">
  114.     <?php
  115.     echo "\n";
  116.     foreach ($columns AS $junk => $fieldname) {
  117.         echo '                <option value="' . htmlspecialchars($fieldname) . '">' . htmlspecialchars($fieldname) . '</option>' . "\n";
  118.     }
  119.     unset($columns);
  120.     ?>
  121.                 </select> <?php echo $strSingly . "\n"; ?>
  122.                 <select name="order_order" style="vertical-align: middle">
  123.                     <option value="asc"><?php echo $strAscending; ?></option>
  124.                     <option value="desc"><?php echo $strDescending; ?></option>
  125.                 </select>
  126.             </td>
  127.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" align="right">
  128.                 <input type="submit" name="submitorderby" value="<?php echo $strGo; ?>" style="vertical-align: middle" />
  129.             </td>
  130.         </tr>
  131.     </form>
  132.         <tr><td colspan="2" height="5"></td></tr>
  133.     <?php
  134. }
  135. echo "\n";
  136. ?>
  137.     <!-- Change table name -->
  138.     <form method="post" action="tbl_rename.php" onsubmit="return emptyFormElements(this, 'new_name')">
  139.         <tr>
  140.             <th class="tblHeaders" colspan="2" align="left">
  141.                 <?php echo $strRenameTable; ?>: 
  142.                 <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  143.                 <input type="hidden" name="reload" value="1" />
  144.             </th>
  145.         </tr>
  146.         <tr>
  147.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  148.                 <input type="text" size="20" name="new_name" value="<?php echo htmlspecialchars($table); ?>" class="textfield" onfocus="this.select()" /> 
  149.             </td>
  150.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" align="right">
  151.                 <input type="submit" value="<?php echo $strGo; ?>" />
  152.             </td>
  153.         </tr>
  154.     </form>
  155.         <tr><td colspan="2" height="5"></td></tr>
  156.     <!-- Move table -->
  157.     <form method="post" action="tbl_move_copy.php" onsubmit="return emptyFormElements(this, 'new_name')">
  158.         <tr>
  159.             <th class="tblHeaders" colspan="2" align="left">
  160.                 <?php echo $strMoveTable . "\n"; ?>
  161.                 <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  162.                 <input type="hidden" name="reload" value="1" />
  163.                 <input type="hidden" name="what" value="data" />
  164.             </th>
  165.         </tr>
  166.         <tr>
  167.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" nowrap="nowrap">
  168.                 <select name="target_db">
  169. <?php
  170. // The function used below is defined in "common.lib.php"
  171. PMA_availableDatabases('main.php?' . PMA_generate_common_url());
  172. for ($i = 0; $i < $num_dbs; $i++) {
  173.     echo '                            ';
  174.     echo '<option value="' . htmlspecialchars($dblist[$i]) . '">' . htmlspecialchars($dblist[$i]) . '</option>';
  175.     echo "\n";
  176. } // end for
  177. ?>
  178.                 </select>
  179.                  <b>.</b> 
  180.                 <input type="text" size="20" name="new_name" value="<?php echo htmlspecialchars($table); ?>" class="textfield" onfocus="this.select()" />
  181.             </td>
  182.             <td align="<?php echo $cell_align_right; ?>" bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  183.                 <input type="submit" name="submit_move" value="<?php echo $strGo; ?>" />
  184.             </td>
  185.         </tr>
  186.     </form>
  187.         <tr><td colspan="2" height="5"></td></tr>
  188.     <!-- Copy table -->
  189.     <form method="post" action="tbl_move_copy.php" onsubmit="return emptyFormElements(this, 'new_name')">
  190.         <tr>
  191.             <th class="tblHeaders" colspan="2" align="left">
  192.                 <?php echo $strCopyTable . "\n"; ?>
  193.                 <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  194.                 <input type="hidden" name="reload" value="1" />
  195.             </th>
  196.         </tr>
  197.         <tr>
  198.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" colspan="2" nowrap="nowrap">
  199.                 <select name="target_db">
  200. <?php
  201. for ($i = 0; $i < $num_dbs; $i++) {
  202.     echo '                    ';
  203.     echo '<option value="' . htmlspecialchars($dblist[$i]) . '"';
  204.     if ($dblist[$i] == $db) {
  205.         echo ' selected="selected"';
  206.     }
  207.     echo '>' . htmlspecialchars($dblist[$i]) . '</option>';
  208.     echo "\n";
  209. } // end for
  210. ?>
  211.                 </select>
  212.                  <b>.</b> 
  213.                 <input type="text" size="20" name="new_name" class="textfield" onfocus="this.select()" />
  214.             </td>
  215.         </tr>
  216.         <tr>
  217.             <td nowrap="nowrap" bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  218.                 <input type="radio" name="what" value="structure" id="radio_copy_structure" style="vertical-align: middle" /><label for="radio_copy_structure"><?php echo $strStrucOnly; ?></label>  <br />
  219.                 <input type="radio" name="what" value="data" id="radio_copy_data" checked="checked" style="vertical-align: middle" /><label for="radio_copy_data"><?php echo $strStrucData; ?></label>  <br />
  220.                 <input type="radio" name="what" value="dataonly" id="radio_copy_dataonly" style="vertical-align: middle" /><label for="radio_copy_dataonly"><?php echo $strDataOnly; ?></label>  <br />
  221.  
  222.                 <input type="checkbox" name="drop_if_exists" value="true" id="checkbox_drop" style="vertical-align: middle" /><label for="checkbox_drop"><?php echo $strStrucDrop; ?></label>  <br />
  223.                 <input type="checkbox" name="auto_increment" value="1" id="checkbox_auto_increment" style="vertical-align: middle" /><label for="checkbox_auto_increment"><?php echo $strAddAutoIncrement; ?></label><br />
  224.                 <?php
  225.                     // display "Add constraints" choice only if there are
  226.                     // foreign keys
  227.                     if (PMA_getForeigners($db, $table, '', 'innodb')) {
  228.                 ?>
  229.                 <input type="checkbox" name="constraints" value="1" id="checkbox_constraints" style="vertical-align: middle" /><label for="checkbox_constraints"><?php echo $strAddConstraints; ?></label><br />
  230.                 <?php
  231.                     } // endif
  232.                     if (isset($_COOKIE) && isset($_COOKIE['pma_switch_to_new']) && $_COOKIE['pma_switch_to_new'] == 'true') {
  233.                         $pma_switch_to_new = 'true';
  234.                     }
  235.                 ?>
  236.                 <input type="checkbox" name="switch_to_new" value="true" id="checkbox_switch"<?php echo ((isset($pma_switch_to_new) && $pma_switch_to_new == 'true') ? ' checked="checked"' : ''); ?> style="vertical-align: middle" /><label for="checkbox_switch"><?php echo $strSwitchToTable; ?></label>  
  237.             </td>
  238.             <td align="<?php echo $cell_align_right; ?>" valign="bottom" bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  239.                 <input type="submit" name="submit_copy" value="<?php echo $strGo; ?>" />
  240.             </td>
  241.         </tr>
  242.     </form>
  243.         <tr><td colspan="2" height="5"></td></tr>
  244. <?php
  245.  
  246. /**
  247.  * Displays form controls
  248.  */
  249. ?>
  250.     <!-- Table comments -->
  251.     <form method="post" action="tbl_properties_operations.php">
  252.         <tr>
  253.             <th colspan="2" class="tblHeaders" align="left">
  254.                 <?php
  255.                 echo PMA_generate_common_hidden_inputs($db, $table);
  256.                 echo $strTableComments . ' ';
  257.                 if (strstr($show_comment, '; InnoDB free') === FALSE) {
  258.                     if (strstr($show_comment, 'InnoDB free') === FALSE) {
  259.                         // only user entered comment
  260.                         $comment = $show_comment;
  261.                     } else {
  262.                         // here we have just InnoDB generated part
  263.                         $comment = '';
  264.                     }
  265.                 } else {
  266.                     // remove InnoDB comment from end, just the minimal part (*? is non greedy)
  267.                     $comment = preg_replace('@; InnoDB free:.*?$@' , '', $show_comment);
  268.                 }
  269.                 ?>
  270.                 <input type="hidden" name="prev_comment" value="<?php echo urlencode($comment); ?>" /> 
  271.             </th>
  272.         <tr>
  273.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  274.                 <input type="text" name="comment" maxlength="60" size="30" value="<?php echo htmlspecialchars($comment); ?>" class="textfield" style="vertical-align: middle" onfocus="this.select()" /> 
  275.             </td>
  276.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" align="right">
  277.                 <input type="submit" name="submitcomment" value="<?php echo $strGo; ?>" style="vertical-align: middle" />
  278.             </td>
  279.         </tr>
  280.     </form>
  281.         <tr><td colspan="2" height="5"></td></tr>
  282.     <!-- Table type -->
  283.     <?php
  284.     // modify robbat2 code - staybyte - 11. June 2001
  285.     $result = PMA_DBI_query('SHOW VARIABLES LIKE \'have_%\';');
  286.     if ($result) {
  287.         while ($tmp = PMA_DBI_fetch_assoc($result)) {
  288.             if (isset($tmp['Variable_name'])) {
  289.                 switch ($tmp['Variable_name']) {
  290.                     case 'have_bdb':
  291.                         if ($tmp['Value'] == 'YES') {
  292.                             $tbl_bdb    = TRUE;
  293.                         }
  294.                         break;
  295.                     case 'have_gemini':
  296.                         if ($tmp['Value'] == 'YES') {
  297.                             $tbl_gemini = TRUE;
  298.                         }
  299.                         break;
  300.                     case 'have_innodb':
  301.                         if ($tmp['Value'] == 'YES') {
  302.                             $tbl_innodb = TRUE;
  303.                         }
  304.                         break;
  305.                     case 'have_isam':
  306.                         if ($tmp['Value'] == 'YES') {
  307.                             $tbl_isam   = TRUE;
  308.                         }
  309.                         break;
  310.                 } // end switch
  311.             } // end if isset($tmp['Variable_name'])
  312.         } // end while
  313.     } // end if $result
  314.  
  315.     PMA_DBI_free_result($result);
  316.     echo "\n";
  317.     ?>
  318.     <form method="post" action="tbl_properties_operations.php">
  319.         <tr>
  320.             <th colspan="2" class="tblHeaders" align="left">
  321.                 <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  322.                 <?php echo $strTableType; ?>: 
  323.                 <?php echo PMA_showMySQLDocu('Table_types', 'Table_types') . "\n"; ?>
  324.             </th>
  325.         </tr>
  326.         <tr>
  327.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  328.             <?php echo PMA_generateEnginesDropdown('tbl_type', NULL, FALSE, $tbl_type, 4); ?>
  329.             </td>
  330.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" align="right">
  331.                 <input type="submit" name="submittype" value="<?php echo $strGo; ?>" />
  332.             </td>
  333.         </tr>
  334.     </form>
  335.         <tr><td colspan="2" height="5"></td></tr>
  336.     <?php
  337.  
  338.     if (PMA_MYSQL_INT_VERSION >= 40100) {
  339.         echo "\n"
  340.            . '<!-- Table character set -->' . "\n"
  341.            . '    <form method="post" action="tbl_properties_operations.php">' . "\n"
  342.            . '        <tr>' . "\n"
  343.            . '            <th colspan="2" class="tblHeaders" align="left">' . "\n"
  344.            . PMA_generate_common_hidden_inputs($db, $table, 3)
  345.            . '            ' . $strCollation . ': ' . "\n"
  346.            . '            </th>' . "\n"
  347.            . '        </tr>' . "\n"
  348.            . '        <tr>' . "\n"
  349.            . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  350.            . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'tbl_collation', NULL, $tbl_collation, FALSE, 3)
  351.            . '            </td>' . "\n"
  352.            . '            <td bgcolor="' . $cfg['BgcolorOne'] . '" align="right">' . "\n"
  353.            . '                <input type="submit" name="submitcollation" value="' . $strGo . '" style="vertical-align: middle" />' . "\n"
  354.            . '        </td>' . "\n"
  355.            . '        </tr>' . "\n"
  356.            . '    </form>' . "\n"
  357.            . '        <tr><td colspan="2" height="5"></td></tr>' . "\n";
  358.     }
  359.     // PACK_KEYS: MyISAM or ISAM
  360.     // DELAY_KEY_WRITE, CHECKSUM, AUTO_INCREMENT: MyISAM only
  361.  
  362.     if ($tbl_type == 'MYISAM' || $tbl_type == 'ISAM') {
  363.     ?>
  364.     <!-- Table options -->
  365.     <form method="post" action="tbl_properties_operations.php">
  366.         <tr>
  367.             <th colspan="2" class="tblHeaders" align="left">
  368.                 <?php echo $strTableOptions; ?>: 
  369.                 <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
  370.             </th>
  371.         </tr>
  372.         <tr>
  373.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  374.                 <input type="checkbox" name="pack_keys" id="pack_keys_opt"
  375.                 <?php echo (isset($pack_keys) && $pack_keys == 1) ? ' checked="checked"' : ''; ?> style="vertical-align: middle" /><label for="pack_keys_opt">pack_keys</label><br />
  376.         <?php
  377.         if ($tbl_type == 'MYISAM') {
  378.         ?>
  379.                 <input type="checkbox" name="checksum" id="checksum_opt"
  380.                 <?php echo (isset($checksum) && $checksum == 1) ? ' checked="checked"' : ''; ?> style="vertical-align: middle" /><label for="checksum_opt">checksum</label><br />
  381.  
  382.                 <input type="checkbox" name="delay_key_write" id="delay_key_write_opt"
  383.                 <?php echo (isset($delay_key_write) && $delay_key_write == 1) ? ' checked="checked"' : ''; ?> style="vertical-align: middle" /><label for="delay_key_write_opt">delay_key_write</label><br />
  384.  
  385.                 <input type="text" name="auto_increment" id="auto_increment_opt" class="textfield"
  386.                 <?php echo (isset($auto_increment) && !empty($auto_increment) ? ' value="' . $auto_increment . '"' : ''); ?> style="width: 30px; vertical-align: middle" /> <label for="auto_increment_opt">auto_increment</label>
  387.             </td>
  388.         <?php
  389.         } // end if (MYISAM)
  390.         ?>
  391.             <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" align="right" valign="bottom">
  392.                 <input type="submit" name="submitoptions" value="<?php echo $strGo; ?>" />
  393.             </td>
  394.         </tr>
  395.     </form>
  396. <?php
  397.     } // end if (MYISAM or ISAM)
  398. ?>
  399. </table>
  400. <img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" width="25" height="1" border="0" align="left" />
  401. <!----->
  402. <table border="0" cellpadding="3" cellspacing="0">
  403.     <tr>
  404.         <th class="tblHeaders" colspan="2" align="left">
  405.             <?php echo $strTableMaintenance; ?>
  406.         </th>
  407.     </tr>
  408. <?php
  409. if ($tbl_type == 'MYISAM' || $tbl_type == 'BERKELEYDB' || $tbl_type == 'INNODB') {
  410.     echo "\n";
  411.     if ($tbl_type == 'MYISAM' || $tbl_type == 'INNODB') {
  412.         ?>
  413.     <tr>
  414.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  415.             <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('CHECK TABLE ' . PMA_backquote($table)); ?>">
  416.                 <?php echo $strCheckTable; ?></a> 
  417.         </td>
  418.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  419.             <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'CHECK_TABLE') . "\n"; ?>
  420.         </td>
  421.     </tr>
  422.         <?php
  423.     }
  424.     echo "\n";
  425.     if ($tbl_type == 'INNODB') {
  426.         ?>
  427.     <tr>
  428.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  429.             <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ' TYPE=InnoDB'); ?>">
  430.                 <?php echo $strDefragment; ?></a> 
  431.         </td>
  432.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  433.             <?php echo PMA_showMySQLDocu('Table_types', 'InnoDB_File_Defragmenting') . "\n"; ?>
  434.         </td>
  435.     </tr>
  436.         <?php
  437.     }
  438.     echo "\n";
  439.     if ($tbl_type == 'MYISAM' || $tbl_type == 'BERKELEYDB') {
  440.         ?>
  441.     <tr>
  442.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  443.             <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('ANALYZE TABLE ' . PMA_backquote($table)); ?>">
  444.                 <?php echo $strAnalyzeTable; ?></a> 
  445.         </td>
  446.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  447.             <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'ANALYZE_TABLE') . "\n";?>
  448.         </td>
  449.     </tr>
  450.         <?php
  451.     }
  452.     echo "\n";
  453.     if ($tbl_type == 'MYISAM') {
  454.         ?>
  455.     <tr>
  456.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  457.             <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('REPAIR TABLE ' . PMA_backquote($table)); ?>">
  458.                 <?php echo $strRepairTable; ?></a> 
  459.         </td>
  460.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  461.             <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'REPAIR_TABLE') . "\n"; ?>
  462.         </td>
  463.     </tr>
  464.         <?php
  465.     }
  466.     echo "\n";
  467.     if ($tbl_type == 'MYISAM' || $tbl_type == 'BERKELEYDB') {
  468.         ?>
  469.     <tr>
  470.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  471.             <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('OPTIMIZE TABLE ' . PMA_backquote($table)); ?>">
  472.                 <?php echo $strOptimizeTable; ?></a> 
  473.         </td>
  474.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  475.             <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'OPTIMIZE_TABLE') . "\n"; ?>
  476.         </td>
  477.     </tr>
  478.         <?php
  479.     }
  480.     echo "\n";
  481.     ?>
  482.     <?php
  483. } // end MYISAM or BERKELEYDB case
  484. echo "\n";
  485. ?>
  486.     <tr>
  487.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  488.                 <a href="sql.php?<?php echo $url_query; ?>&sql_query=<?php echo urlencode('FLUSH TABLE ' . PMA_backquote($table)); ?>&zero_rows=<?php echo urlencode(sprintf($strTableHasBeenFlushed, htmlspecialchars($table))); if ($cfg['ShowTooltip']) echo '&reload=1'; ?>">
  489.                     <?php echo $strFlushTable; ?></a> 
  490.         </td>
  491.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
  492.                     <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'FLUSH') . "\n"; ?>
  493.         </td>
  494.     </tr>
  495.  
  496. <?php
  497. // Referential integrity check
  498. // The Referential integrity check was intended for the non-InnoDB
  499. // tables for which the relations are defined in pmadb
  500. // so I assume that if the current table is InnoDB, I don't display
  501. // this choice (InnoDB maintains integrity by itself)
  502.  
  503. if ($cfgRelation['relwork'] && $tbl_type != "INNODB") {
  504.  
  505.     // we need this PMA_DBI_select_db if the user has access to more than one db
  506.     // and $db is not the last of the list, because PMA_availableDatabases()
  507.     // has made a PMA_DBI_select_db() on the last one
  508.     PMA_DBI_select_db($db);
  509.     $foreign = PMA_getForeigners($db, $table);
  510.  
  511.     if ($foreign) {
  512.         ?>
  513.     <!-- Referential integrity check -->
  514.     <tr>
  515.         <td bgcolor="<?php echo $cfg['BgcolorOne']; ?>" colspan="2">
  516.                 <?php echo $strReferentialIntegrity; ?><br />
  517.                 <?php
  518.                 echo "\n";
  519.                 foreach ($foreign AS $master => $arr) {
  520.                     $join_query  = 'SELECT ' . PMA_backquote($table) . '.* FROM '
  521.                                  . PMA_backquote($table) . ' LEFT JOIN '
  522.                                  . PMA_backquote($arr['foreign_table']);
  523.                     if ($arr['foreign_table'] == $table) {
  524.                         $foreign_table = $table . '1';
  525.                         $join_query .= ' AS ' . PMA_backquote($foreign_table);
  526.                     } else {
  527.                         $foreign_table = $arr['foreign_table'];
  528.                     }
  529.                     $join_query .= ' ON '
  530.                                  . PMA_backquote($table) . '.' . PMA_backquote($master)
  531.                                  . ' = ' . PMA_backquote($foreign_table) . '.' . PMA_backquote($arr['foreign_field'])
  532.                                  . ' WHERE '
  533.                                  . PMA_backquote($foreign_table) . '.' . PMA_backquote($arr['foreign_field'])
  534.                                  . ' IS NULL AND '
  535.                                  . PMA_backquote($table) . '.' . PMA_backquote($master)
  536.                                  . ' IS NOT NULL';
  537.                     echo '        '
  538.                          . '<a href="sql.php?' . $url_query
  539.                          . '&sql_query='
  540.                          . urlencode($join_query)
  541.                          . '">' . $master . ' -> ' . $arr['foreign_table'] . '.' . $arr['foreign_field']
  542.                          . '</a><br />' . "\n";
  543.                     unset($foreign_table);
  544.                     unset($join_query);
  545.                 } //  end while
  546.                 ?>
  547.         </td>
  548.     </tr>
  549.         <?php
  550.     } // end if ($result)
  551.     echo "\n";
  552.  
  553. } // end  if (!empty($cfg['Server']['relation']))
  554. ?>
  555. </table>
  556. <?php
  557.  
  558. /**
  559.  * Displays the footer
  560.  */
  561. echo "\n";
  562. require_once('./footer.inc.php');
  563. ?>
  564.